﻿using System.Collections.Generic;
using System.Windows;
using MaxStoreErp.Core.BaseClasses;

namespace MaxStoreErp.Core.Interfaces
{
    /// <summary>
    /// Интерфейс главного окна
    /// </summary>
    public interface IShellWindow
    {
        /// <summary>
        /// Блокирует панель инструментов главного окна
        /// </summary>
        void LockToolBar();

        /// <summary>
        /// Производит разблокировку панели инструментов главного окна
        /// </summary>
        void UnlockToolbar();

        /// <summary>
        /// Получает или задает заголовок главного окна
        /// </summary>
        string WindowTitle { get; set; }

        /// <summary>
        /// Представление главного окна
        /// </summary>
        IView ShellView { get; }

        /// <summary>
        /// Размещает указанные элементы в панели инструментов
        /// </summary>
        /// <param name="items">Элементы, размещаемые в панели инструментов</param>
        void PlaceToolBarItems(IList<FrameworkElement> items);

        /// <summary>
        /// Удаляет указанные элементы из панели инструментов
        /// </summary>
        /// <param name="items">Элементы, которые необходимо удалить из панели инструментов</param>
        void RemoveToolBarItems(IList<FrameworkElement> items);

        /// <summary>
        /// Размещает указанные элементы в панели статуса
        /// </summary>
        /// <param name="items">Элементы, размещаемые в панели статуса</param>
        void PlaceStatusBarItems(IList<FrameworkElement> items);

        /// <summary>
        /// Удаляет указанные элементы из панели статуса
        /// </summary>
        /// <param name="items">Элементы, которые необходимо удалить из панели статуса</param>
        void RemoveStatusBarItems(IList<FrameworkElement> items);
    }
}
